package io.ken.im.common.mq.event;

import io.ken.im.common.domain.model.TopicMessage;
import org.apache.rocketmq.client.producer.TransactionSendResult;

/**
 * @author: ken
 * @description: 服务事件发送器
 * @date 2024-01-29
 **/
public interface MessageEventSenderService {

    /**
     * 发送服务事件
     *
     * @param message 发送的消息
     * @return
     */
    boolean send(TopicMessage message);

    /**
     * 发送事务型MQ消息，主要针对RocketMQ
     *
     * @param message 消息内容
     * @param args    其他参数
     * @return 事务发送结果
     */
    default TransactionSendResult sendMessageInTransaction(TopicMessage message, Object args) {
        return null;
    }
}
